﻿//#if JEJE
//    extern alias Pipi;
//    extern alias Pitilo;
//#endif

using System;
using System.Collections.Generic;
using System.Text;
using InDep = System.Deployment.Internal;
using Hilos = System.Threading;

using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;

//[assembly: AssemblyDescription  ("PIO") ]
//[assembly: AssemblyConfiguration("")    ]

namespace HAVNet.CoreTesting
{
    [AttributeUsage(AttributeTargets.All)]
    public class HelpAttribute : System.Attribute
    {
        public readonly string Url;
        public string Topic               // Topic is a named parameter
        {
            get
            {
                return topic;
            }
            set
            {
                topic = value;
            }
        }
        public HelpAttribute(string url)  // url is a positional parameter
        {
            this.Url = url;
        }
        private string topic;
    }

    //[Serializable]
    //[HelpAttribute("http://www.goglete.com", Topic = "jeje")]

    //internal class PruebaEventos
    //{
    //    internal const float COCA_COLA = 123f;

    //    public event EventHandler pipo;

    //    protected static event EventHandler popi = null, papa = null;

    //    internal event EventHandler pipi
    //    {
    //        add
    //        {
    //            int j = 0;
    //        }
    //        remove
    //        {
    //            int x = 1;
    //        }
    //    }
    //}

    class YYY : XXX
    {
        public YYY  (int x, int a, int b)
            : base  (a, b)
        { 
            //
        }
    }

    //unsafe internal struct UnsafeStruct
    //{
    //    new internal fixed int tuca [10];
    //    new private fixed int mari [20];
    //    new public unsafe fixed int maru [30];
    //}

    class XXX
    {
        public volatile int a = 10;
        private static int b = 1, c = 3;

        public class Anida { }

        public XXX  (int a, int b)
            : base  ()
        {
            //
        }

        public XXX  (int a)
            : this  (a, 10)
        {
            //
        }

        public static XXX operator + (XXX x1, XXX x2)
        {
            return null;
        }
    }

    

    class Props
    {
        int _xxx = 0;

        [HelpAttribute("http://www.goglete.com", Topic = "jeje")]
        protected int xxx
        {
            get { return 10; }
            private set { _xxx = value; }
        }

        [HelpAttribute("http://www.goglete.com", Topic = "jeje")]
        protected int unMetodo<T, Y>(T t, Y y)
            where T : IComparable<T>
            where Y : ICloneable
        {
            T tx = default(T);
            Y yx = default(Y);
            return 1;
        }
    }
}
